{
 "cells": [
  {
   "cell_type": "markdown",
   "source": [
    "# 结合搜索引擎写一篇万字长报告（一）\n",
    "## 1. 初始化环境变量"
   ],
   "metadata": {
    "collapsed": false
   },
   "id": "d53fe985b294a63f"
  },
  {
   "cell_type": "code",
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "API_BASE_URL: https://cognihubemp.baystoneai.com/cognihub/service\n"
     ]
    }
   ],
   "source": [
    "from dotenv import load_dotenv\n",
    "import os\n",
    "\n",
    "# 加载 .env 文件\n",
    "load_dotenv()\n",
    "\n",
    "# 读取环境变量\n",
    "API_BASE_URL = os.getenv(\"API_BASE_URL\")\n",
    "API_KEY = os.getenv(\"API_KEY\")\n",
    "langsmith_api_key = os.getenv(\"LANGSMITH_API_KEY\")\n",
    "SEAR_XNG_HOST = os.getenv(\"SEAR_XNG\")\n",
    "print(\"API_BASE_URL:\", API_BASE_URL)"
   ],
   "metadata": {
    "collapsed": true,
    "ExecuteTime": {
     "end_time": "2024-11-15T05:32:35.989664Z",
     "start_time": "2024-11-15T05:32:35.973083Z"
    }
   },
   "id": "initial_id",
   "execution_count": 1
  },
  {
   "cell_type": "markdown",
   "source": [
    "## 2.测试搜索引擎"
   ],
   "metadata": {
    "collapsed": false
   },
   "id": "106b09588aac7d2"
  },
  {
   "cell_type": "code",
   "outputs": [
    {
     "data": {
      "text/plain": "'10月18日，2024年\"全能王\"全国 钓鱼 锦标赛（上海站）在浦东新区老港镇开幕，来自全国各地的400余名垂钓选手、爱好者相聚一堂，在两天的比赛中开展激烈角逐。 据悉，本次比赛由中国 钓鱼 运动协会、上海市体育局、上海市体育总会、浦东新区文化体育和旅游局共同主办，是年\"全能王\"全国钓鱼锦标赛的收官之战。 老港镇内近千条河流交错纵横，组成了丰富的水生态体系，与老港雪菜、水稻共同成就了江南鱼米之乡、海滨生态小镇，吸引了大批 垂钓 爱好者慕名而来。 此次比赛赛场设置在全新打造的老港欣河 垂钓 中心。 老港欣河垂钓中心在今年完成了鱼塘标准化建设，占地30亩，可容纳500人同时垂钓。 此次比赛也是老港欣河垂钓中心建成后举办的首场大型赛事。'"
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from langchain_community.utilities import SearxSearchWrapper\n",
    "searx = SearxSearchWrapper(searx_host=SEAR_XNG_HOST)\n",
    "searx.run(\"2024年钓鱼比赛?\", engine=\"qwant\")"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2024-11-15T05:32:41.644150Z",
     "start_time": "2024-11-15T05:32:35.992746Z"
    }
   },
   "id": "cfce8e050354cae8",
   "execution_count": 2
  },
  {
   "cell_type": "markdown",
   "source": [
    "### 2.3 测试三"
   ],
   "metadata": {
    "collapsed": false
   },
   "id": "a1d993bd0d0b3969"
  },
  {
   "cell_type": "code",
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[{'snippet': '2024年\"全能王\"全国钓鱼锦标赛 (新疆疏勒站)作为经中国钓鱼运动协会批准的国家级一类赛事,也是疏勒印象 垂钓 中心举办的第二届全国性 垂钓 大赛，希望通过本届大赛，向更多朋友更好推介疏勒，进一步打响\"丝路重镇·多彩疏勒\"旅游品牌。 喀什地区行署二级巡视员罗翔在致辞中说，近年来，在自治区党委、自治区人民政府的坚强领导下，喀什地区认真贯彻党的体育方针，坚持正确的体育发展方向，全民健身蓬勃发展，竞技体育屡创佳绩，民族体育快速发展，体育产业不断壮大，体育旅游蒸蒸日上。 今年，疏勒县再次举办\"全能王\"全国钓鱼锦标赛，是充分展示\"大美喀什·游钓疏勒\"的魅力的具体行动，对于打造运动喀什、健康喀什、活力喀什具有十分重要而深远的意义，必将推动喀什地区体育与文化、体育与旅游、体育与乡村振兴高度融合。', 'title': '2024\"全能王\"全国钓鱼锦标赛（新疆疏勒站）暨中国龙传统 ...', 'link': 'https://www.cnfisher.com/2024/diaoyubisai_0629/96587.html', 'engines': ['duckduckgo', 'qwant'], 'category': 'general'}, {'snippet': '自然水域. “22℃商洛·中国康养之都”. 中国钓鱼运动协会 关于举办“亚王·红电杯”第十三届中国升钟湖国际钓鱼大赛系列活动三项钓鱼比赛的通知 2024-09-19. 全国自然水域垂钓系列大赛中国冠县钓鱼邀请赛圆满举办 2024-09-04. 300多支队伍、600多运动员挥竿竞技 ...', 'title': '中国钓鱼运动协会官方网站', 'link': 'http://chinacaa.org.cn/', 'engines': ['duckduckgo', 'qwant'], 'category': 'general'}, {'snippet': '2024年\"全能王\"全国钓鱼锦标赛（新疆疏勒站）于7月2日顺利完成各项比赛项目，在疏勒印象垂钓中心圆满收竿。 2024年10月18日，2024年\"全能王\"全国钓鱼锦标赛（上海站）在浦东老港镇开钓。 [2] 中文名. 2024年\"全能王\"全国钓鱼锦标赛. 举办时间. 2024年. 目录. 1 参赛阵容. 2 赛况记录. 3 赛事意义. 参赛阵容. 播报. 编辑. 新疆疏勒站. 比赛共设5个项目，来自全国各地的近500名钓友齐聚比赛现场，同场切磋钓技，在竞技赛场展示竞技水平和风采。 上海站. 吸引了来自全国各地的400名优秀钓鱼选手参赛。 [2] 赛况记录. 播报. 编辑. 新疆疏勒站.', 'title': '2024年\"全能王\"全国钓鱼锦标赛 - 百度百科', 'link': 'https://baike.baidu.com/item/2024%E5%B9%B4%E2%80%9C%E5%85%A8%E8%83%BD%E7%8E%8B%E2%80%9D%E5%85%A8%E5%9B%BD%E9%92%93%E9%B1%BC%E9%94%A6%E6%A0%87%E8%B5%9B/64608428', 'engines': ['duckduckgo', 'qwant'], 'category': 'general'}, {'snippet': '10月18日，2024年\"全能王\"全国 钓鱼 锦标赛（上海站）在浦东新区老港镇开幕，来自全国各地的400余名垂钓选手、爱好者相聚一堂，在两天的比赛中开展激烈角逐。 据悉，本次比赛由中国 钓鱼 运动协会、上海市体育局、上海市体育总会、浦东新区文化体育和旅游局共同主办，是2024年\"全能王\"全国钓鱼锦标赛的收官之战。 老港镇内近千条河流交错纵横，组成了丰富的水生态体系，与老港雪菜、水稻共同成就了江南鱼米之乡、海滨生态小镇，吸引了大批 垂钓 爱好者慕名而来。 此次比赛赛场设置在全新打造的老港欣河 垂钓 中心。 老港欣河垂钓中心在今年完成了鱼塘标准化建设，占地30亩，可容纳500人同时垂钓。 此次比赛也是老港欣河垂钓中心建成后举办的首场大型赛事。', 'title': '2024年\"全能王\"全国钓鱼锦标赛（上海站）在浦东新区老港镇 ...', 'link': 'https://www.cnfisher.com/2024/diaoyubisai_1020/102323.html', 'engines': ['duckduckgo'], 'category': 'general'}, {'snippet': '2024年\"全能王\"全国钓鱼锦标赛 (新疆疏勒站)作为经中国钓鱼运动协会批准的国家级一类赛事，也是疏勒印象垂钓中心举办的第二届全国性垂钓大赛，希望通过本届大赛，向更多朋友更好推介疏勒，进一步打响\"丝路重镇·多彩疏勒\"旅游品牌。 2024年\"全能王\"全国钓鱼锦标赛（新疆疏勒站）暨中国龙传统文化交流活动开幕现场。 疏勒县融媒体中心 宋佳飞 摄. 喀什地区行署二级巡视员罗翔在致辞中说，近年来，在自治区党委、自治区人民政府的坚强领导下，喀什地区认真贯彻党的体育方针，坚持正确的体育发展方向，全民健身蓬勃发展，竞技体育屡创佳绩，民族体育快速发展，体育产业不断壮大，体育旅游蒸蒸日上。', 'title': '2024年\"全能王\"全国钓鱼锦标赛（新疆疏勒站）暨中国龙传统 ...', 'link': 'http://xj.news.cn/zt/2024-06/29/c_1130170995.htm', 'engines': ['duckduckgo', 'qwant'], 'category': 'general'}]\n"
     ]
    }
   ],
   "source": [
    "web_search = searx.results(\"2024年钓鱼比赛\", num_results=5, engine=\"qwant\")\n",
    "print(web_search)"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2024-11-15T05:32:43.668815Z",
     "start_time": "2024-11-15T05:32:41.645800Z"
    }
   },
   "id": "e7012d61309d82ab",
   "execution_count": 3
  },
  {
   "cell_type": "markdown",
   "source": [
    "## 3. 初始化 LLM"
   ],
   "metadata": {
    "collapsed": false
   },
   "id": "89d45670ef6ecc60"
  },
  {
   "cell_type": "code",
   "outputs": [],
   "source": [
    "from langchain_openai import ChatOpenAI\n",
    "\n",
    "llm = ChatOpenAI(\n",
    "        model=\"qwen2.5-instruct\",\n",
    "        base_url=f'{API_BASE_URL}/v1',\n",
    "        api_key=API_KEY,\n",
    "        temperature=0,\n",
    "        streaming=False,\n",
    "        request_timeout=30\n",
    "    )"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2024-11-15T05:32:45.501888Z",
     "start_time": "2024-11-15T05:32:43.671747Z"
    }
   },
   "id": "a22ab55eec8d4969",
   "execution_count": 4
  },
  {
   "cell_type": "markdown",
   "source": [
    "## 4. 自定义格式化输出的chain"
   ],
   "metadata": {
    "collapsed": false
   },
   "id": "8cf1e0125e45426d"
  },
  {
   "cell_type": "code",
   "outputs": [],
   "source": [
    "from langchain_core.prompts import ChatPromptTemplate, PromptTemplate\n",
    "from langchain.output_parsers import PydanticOutputParser\n",
    "from pydantic import BaseModel, Field\n",
    "\n",
    "# 定义数据模型\n",
    "class EventInfo(BaseModel):\n",
    "    event: str = Field(..., alias='事件', description=\"事件的名称或描述\")\n",
    "    time: str = Field(..., alias='时间', description=\"事件的具体日期和时间\")\n",
    "    location: str = Field(..., alias='地点', description=\"事件发生的地点\")\n",
    "    audience: str = Field(..., alias='对象', description=\"通知的目标受众\")\n",
    "    purpose: str = Field(..., alias='目的', description=\"发送此通知的目的或期望的行动\")\n",
    "\n",
    "# 初始化输出解析器\n",
    "output_parser = PydanticOutputParser(pydantic_object=EventInfo)\n",
    "\n",
    "# 获取格式化指令\n",
    "format_instructions = output_parser.get_format_instructions()\n",
    "\n",
    "# 定义提示模板\n",
    "prompt = PromptTemplate(\n",
    "    template=(\n",
    "        \"你是一名专业的信息提取助手。请从以下文本中提取事件、时间、地点、对象和目的信息，必须是一条\"\n",
    "        \"并以 JSON 格式返回结果：\\n\\n{input_text}\"\n",
    "    ),\n",
    "    input_variables=[\"input_text\"],\n",
    "    partial_variables={\"format_instructions\": format_instructions}\n",
    ")\n",
    "\n",
    "chain = prompt | llm"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2024-11-15T05:32:45.568696Z",
     "start_time": "2024-11-15T05:32:45.505178Z"
    }
   },
   "id": "aee64628f86b3155",
   "execution_count": 5
  },
  {
   "cell_type": "markdown",
   "source": [
    "## 5. 调用链并处理LLM提取结果"
   ],
   "metadata": {
    "collapsed": false
   },
   "id": "b175e313f00f5415"
  },
  {
   "cell_type": "code",
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "根据提供的文本，提取出的事件、时间、地点、对象和目的信息如下：\n",
      "\n",
      "```json\n",
      "{\n",
      "  \"事件\": \"2024'全能王'全国钓鱼锦标赛\",\n",
      "  \"时间\": \"2024年\",\n",
      "  \"地点\": \"新疆疏勒\",\n",
      "  \"对象\": \"中国钓鱼运动协会、疏勒印象垂钓中心\",\n",
      "  \"目的\": \"推介疏勒，打响'丝路重镇·多彩疏勒'旅游品牌，推动喀什地区体育与文化、体育与旅游、体育与乡村振兴高度融合\"\n",
      "}\n",
      "```\n",
      "\n",
      "{\"event\":\"2024'全能王'全国钓鱼锦标赛\",\"time\":\"2024年\",\"location\":\"新疆疏勒\",\"audience\":\"中国钓鱼运动协会、疏勒印象垂钓中心\",\"purpose\":\"推介疏勒，打响'丝路重镇·多彩疏勒'旅游品牌，推动喀什地区体育与文化、体育与旅游、体育与乡村振兴高度融合\"}\n",
      "根据提供的文本，可以提取出以下信息：\n",
      "\n",
      "- 事件：举办“亚王·红电杯”第十三届中国升钟湖国际钓鱼大赛系列活动三项钓鱼比赛\n",
      "- 时间：2024-09-19\n",
      "- 地点：未明确指出，但根据比赛名称，地点可能与升钟湖相关\n",
      "- 对象：中国钓鱼运动协会\n",
      "- 目的：举办钓鱼比赛\n",
      "\n",
      "将这些信息以 JSON 格式返回如下：\n",
      "\n",
      "```json\n",
      "{\n",
      "  \"事件\": \"举办“亚王·红电杯”第十三届中国升钟湖国际钓鱼大赛系列活动三项钓鱼比赛\",\n",
      "  \"时间\": \"2024-09-19\",\n",
      "  \"地点\": \"升钟湖（具体地点未明确）\",\n",
      "  \"对象\": \"中国钓鱼运动协会\",\n",
      "  \"目的\": \"举办钓鱼比赛\"\n",
      "}\n",
      "```\n",
      "\n",
      "{\"event\":\"举办“亚王·红电杯”第十三届中国升钟湖国际钓鱼大赛系列活动三项钓鱼比赛\",\"time\":\"2024-09-19\",\"location\":\"升钟湖（具体地点未明确）\",\"audience\":\"中国钓鱼运动协会\",\"purpose\":\"举办钓鱼比赛\"}\n",
      "根据提供的文本，提取出的事件、时间、地点、对象和目的信息如下：\n",
      "\n",
      "```json\n",
      "{\n",
      "  \"事件\": \"2024年'全能王'全国钓鱼锦标赛\",\n",
      "  \"时间\": \"2024年7月2日（新疆疏勒站），2024年10月18日（上海站）\",\n",
      "  \"地点\": \"新疆疏勒站：疏勒印象垂钓中心；上海站：浦东老港镇\",\n",
      "  \"对象\": \"来自全国各地的近500名钓友（新疆疏勒站），来自全国各地的400名优秀钓鱼选手（上海站）\",\n",
      "  \"目的\": \"展示竞技水平和风采，切磋钓技\"\n",
      "}\n",
      "```\n",
      "\n",
      "{\"event\":\"2024年'全能王'全国钓鱼锦标赛\",\"time\":\"2024年7月2日（新疆疏勒站），2024年10月18日（上海站）\",\"location\":\"新疆疏勒站：疏勒印象垂钓中心；上海站：浦东老港镇\",\"audience\":\"来自全国各地的近500名钓友（新疆疏勒站），来自全国各地的400名优秀钓鱼选手（上海站）\",\"purpose\":\"展示竞技水平和风采，切磋钓技\"}\n",
      "```json\n",
      "{\n",
      "  \"事件\": \"2024年'全能王'全国钓鱼锦标赛（上海站）开幕\",\n",
      "  \"时间\": \"2024年10月18日\",\n",
      "  \"地点\": \"浦东新区老港镇老港欣河垂钓中心\",\n",
      "  \"对象\": \"来自全国各地的400余名垂钓选手、爱好者\",\n",
      "  \"目的\": \"开展激烈角逐，作为2024年'全能王'全国钓鱼锦标赛的收官之战\"\n",
      "}\n",
      "```\n",
      "\n",
      "{\"event\":\"2024年'全能王'全国钓鱼锦标赛（上海站）开幕\",\"time\":\"2024年10月18日\",\"location\":\"浦东新区老港镇老港欣河垂钓中心\",\"audience\":\"来自全国各地的400余名垂钓选手、爱好者\",\"purpose\":\"开展激烈角逐，作为2024年'全能王'全国钓鱼锦标赛的收官之战\"}\n",
      "根据提供的文本，提取出的事件、时间、地点、对象和目的信息如下：\n",
      "\n",
      "```json\n",
      "{\n",
      "  \"事件\": \"2024年'全能王'全国钓鱼锦标赛（新疆疏勒站）\",\n",
      "  \"时间\": \"2024年\",\n",
      "  \"地点\": \"新疆疏勒\",\n",
      "  \"对象\": \"中国钓鱼运动协会、疏勒印象垂钓中心\",\n",
      "  \"目的\": \"推介疏勒，打响'丝路重镇·多彩疏勒'旅游品牌\"\n",
      "}\n",
      "```\n",
      "\n",
      "{\"event\":\"2024年'全能王'全国钓鱼锦标赛（新疆疏勒站）\",\"time\":\"2024年\",\"location\":\"新疆疏勒\",\"audience\":\"中国钓鱼运动协会、疏勒印象垂钓中心\",\"purpose\":\"推介疏勒，打响'丝路重镇·多彩疏勒'旅游品牌\"}\n"
     ]
    }
   ],
   "source": [
    "import json\n",
    "res = []\n",
    "for i in web_search:\n",
    "    output = chain.invoke({\"input_text\": i[\"title\"] + \"\\n\" + i[\"snippet\"]})\n",
    "    print(output.content,end=\"\\n\\n\")\n",
    "    # 使用解析器解析模型输出\n",
    "    try:\n",
    "        extracted_info = output_parser.parse(output.content)\n",
    "        json_output = extracted_info.model_dump_json(exclude_unset=True)\n",
    "        print(json_output)\n",
    "        res.append({\n",
    "            \"content\": json.loads(json_output),\n",
    "            \"link\": i[\"link\"],\n",
    "        })\n",
    "    except Exception as e:\n",
    "        print(f\"解析失败：{e}\")"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2024-11-15T05:33:19.772559Z",
     "start_time": "2024-11-15T05:32:45.570427Z"
    }
   },
   "id": "5c9ebf88b88abcbb",
   "execution_count": 6
  },
  {
   "cell_type": "code",
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[{'content': {'event': \"2024'全能王'全国钓鱼锦标赛\", 'time': '2024年', 'location': '新疆疏勒', 'audience': '中国钓鱼运动协会、疏勒印象垂钓中心', 'purpose': \"推介疏勒，打响'丝路重镇·多彩疏勒'旅游品牌，推动喀什地区体育与文化、体育与旅游、体育与乡村振兴高度融合\"}, 'link': 'https://www.cnfisher.com/2024/diaoyubisai_0629/96587.html'}, {'content': {'event': '举办“亚王·红电杯”第十三届中国升钟湖国际钓鱼大赛系列活动三项钓鱼比赛', 'time': '2024-09-19', 'location': '升钟湖（具体地点未明确）', 'audience': '中国钓鱼运动协会', 'purpose': '举办钓鱼比赛'}, 'link': 'http://chinacaa.org.cn/'}, {'content': {'event': \"2024年'全能王'全国钓鱼锦标赛\", 'time': '2024年7月2日（新疆疏勒站），2024年10月18日（上海站）', 'location': '新疆疏勒站：疏勒印象垂钓中心；上海站：浦东老港镇', 'audience': '来自全国各地的近500名钓友（新疆疏勒站），来自全国各地的400名优秀钓鱼选手（上海站）', 'purpose': '展示竞技水平和风采，切磋钓技'}, 'link': 'https://baike.baidu.com/item/2024%E5%B9%B4%E2%80%9C%E5%85%A8%E8%83%BD%E7%8E%8B%E2%80%9D%E5%85%A8%E5%9B%BD%E9%92%93%E9%B1%BC%E9%94%A6%E6%A0%87%E8%B5%9B/64608428'}, {'content': {'event': \"2024年'全能王'全国钓鱼锦标赛（上海站）开幕\", 'time': '2024年10月18日', 'location': '浦东新区老港镇老港欣河垂钓中心', 'audience': '来自全国各地的400余名垂钓选手、爱好者', 'purpose': \"开展激烈角逐，作为2024年'全能王'全国钓鱼锦标赛的收官之战\"}, 'link': 'https://www.cnfisher.com/2024/diaoyubisai_1020/102323.html'}, {'content': {'event': \"2024年'全能王'全国钓鱼锦标赛（新疆疏勒站）\", 'time': '2024年', 'location': '新疆疏勒', 'audience': '中国钓鱼运动协会、疏勒印象垂钓中心', 'purpose': \"推介疏勒，打响'丝路重镇·多彩疏勒'旅游品牌\"}, 'link': 'http://xj.news.cn/zt/2024-06/29/c_1130170995.htm'}]\n"
     ]
    }
   ],
   "source": [
    "print(res)"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2024-11-15T05:33:19.781387Z",
     "start_time": "2024-11-15T05:33:19.775991Z"
    }
   },
   "id": "91e649cc8731fd2f",
   "execution_count": 7
  },
  {
   "cell_type": "markdown",
   "source": [
    "## 6. 将格式化数据输出成一个模版文字"
   ],
   "metadata": {
    "collapsed": false
   },
   "id": "d83fed802ca800fc"
  },
  {
   "cell_type": "code",
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "尊敬的[一休先生]：\n",
      "\n",
      "您好！\n",
      "\n",
      "下面是我整理的一些钓鱼比赛信息，希望您感兴趣：\n",
      "\n",
      "1. 2024'全能王'全国钓鱼锦标赛将于2024年在新疆疏勒.\n",
      "\n",
      "2. 举办“亚王·红电杯”第十三届中国升钟湖国际钓鱼大赛系列活动三项钓鱼比赛将于2024-09-19在升钟湖（具体地点未明确）.\n",
      "\n",
      "3. 2024年'全能王'全国钓鱼锦标赛将于2024年7月2日（新疆疏勒站），2024年10月18日（上海站）在新疆疏勒站：疏勒印象垂钓中心；上海站：浦东老港镇.\n",
      "\n",
      "4. 2024年'全能王'全国钓鱼锦标赛（上海站）开幕将于2024年10月18日在浦东新区老港镇老港欣河垂钓中心.\n",
      "\n",
      "5. 2024年'全能王'全国钓鱼锦标赛（新疆疏勒站）将于2024年在新疆疏勒.\n",
      "\n",
      "谢谢！\n",
      "\n",
      "[您的助理]\n"
     ]
    }
   ],
   "source": [
    "# 定义消息模板\n",
    "message_template = \"\"\"\n",
    "尊敬的[一休先生]：\n",
    "\n",
    "您好！\n",
    "\n",
    "下面是我整理的一些钓鱼比赛信息，希望您感兴趣：\n",
    "\n",
    "{events}\n",
    "\n",
    "谢谢！\n",
    "\n",
    "[您的助理]\n",
    "\"\"\"\n",
    "\n",
    "# 定义单个事件的模板\n",
    "event_template = \"{index}. {event}将于{time}在{location}.\"\n",
    "\n",
    "# 初始化事件列表\n",
    "event_list = []\n",
    "\n",
    "# 遍历 res 列表，提取并格式化每个事件的信息\n",
    "for idx, item in enumerate(res, start=1):\n",
    "    content = item['content']\n",
    "    event_info = event_template.format(\n",
    "        index=idx,\n",
    "        event=content.get('event', '未知事件'),\n",
    "        time=content.get('time', '未知时间'),\n",
    "        location=content.get('location', '未知地点')\n",
    "    )\n",
    "    event_list.append(event_info)\n",
    "\n",
    "# 将所有事件信息合并为一个字符串，每个事件占一行\n",
    "events_str = \"\\n\\n\".join(event_list)\n",
    "\n",
    "# 将事件信息填充到消息模板中\n",
    "final_message = message_template.format(events=events_str)\n",
    "\n",
    "# 输出最终的消息\n",
    "print(final_message)\n"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2024-11-15T05:33:19.789449Z",
     "start_time": "2024-11-15T05:33:19.783098Z"
    }
   },
   "id": "428bad235fc28a9e",
   "execution_count": 8
  },
  {
   "cell_type": "markdown",
   "source": [
    "# 设计万字长文本的大纲目录"
   ],
   "metadata": {
    "collapsed": false
   },
   "id": "def8deabb631ee24"
  },
  {
   "cell_type": "markdown",
   "source": [
    "## 总序\n",
    "1. **标题**：钓鱼比赛活动报告  \n",
    "2. **活动主题**：明确比赛的主题，例如“绿色环保钓鱼比赛”“湖区竞技钓鱼挑战赛”。  \n",
    "3. **活动背景**：\n",
    "   - 举办原因（如推广户外活动、提升钓鱼技术水平）。  \n",
    "   - 活动意义（如促进环保意识、促进钓鱼文化发展）。  \n",
    "4. **报告目的**：\n",
    "   - 总结活动开展情况及主要成果。  \n",
    "   - 分析比赛中存在的问题与改进方向。  \n",
    "   - 展望未来发展目标及建议。  \n",
    "\n",
    "---\n",
    "\n",
    "## 目录\n",
    "### 一、现状\n",
    "#### 1. **情况**\n",
    "   - **活动基本信息**：\n",
    "     - 时间：比赛的具体日期及时间安排。\n",
    "     - 地点：比赛地点（湖泊、河流等）及环境描述。\n",
    "     - 参赛人数及分组情况。\n",
    "   - **比赛形式与规则**：\n",
    "     - 比赛项目分类（如单人竞技、团队竞技）。\n",
    "     - 评分规则（按重量、长度、鱼种等计分）。  \n",
    "     - 钓具与鱼饵限制。  \n",
    "\n",
    "#### 2. **特点**\n",
    "   - **参赛者构成**：\n",
    "     - 参赛者背景（年龄、职业、经验水平）。\n",
    "   - **比赛区域特点**：\n",
    "     - 比赛水域的环境特点（如水深、水质、鱼种分布）。  \n",
    "     - 钓点规划与设置。  \n",
    "\n",
    "#### 3. **趋势**\n",
    "   - **钓鱼比赛的发展趋势**：\n",
    "     - 钓鱼技术的进步及应用。  \n",
    "     - 钓鱼赛事影响力的增长（如参与人数、观众群体的扩大）。  \n",
    "   - **可持续发展与环保**：\n",
    "     - 赛事对生态保护的关注（如放流规则）。  \n",
    "\n",
    "---\n",
    "\n",
    "### 二、展望\n",
    "#### 1. **背景**\n",
    "   - **行业背景**：\n",
    "     - 钓鱼活动在文化与娱乐中的地位。  \n",
    "     - 钓鱼比赛对当地经济的促进作用（如旅游业）。  \n",
    "   - **社会需求**：\n",
    "     - 休闲娱乐活动的多样化需求。  \n",
    "     - 钓鱼竞技对专业化发展的需求。  \n",
    "\n",
    "#### 2. **内容**\n",
    "   - **未来赛事优化方向**：\n",
    "     - 规则完善（如引入更多环保要求或新评分标准）。  \n",
    "     - 参赛者服务提升（如比赛工具租赁、专业教练支持）。  \n",
    "   - **活动形式创新**：\n",
    "     - 增加团队赛、新手组等新形式。  \n",
    "     - 引入数字化技术（如智能鱼类检测设备）。  \n",
    "\n",
    "#### 3. **发展目标**\n",
    "   - **短期目标**：\n",
    "     - 提升比赛参与人数和满意度。  \n",
    "     - 增加比赛区域的生态保护措施。  \n",
    "   - **长期目标**：\n",
    "     - 打造品牌赛事，提高国际知名度。  \n",
    "     - 促进钓鱼文化与环保理念的融合发展。  \n",
    "\n",
    "---\n",
    "\n",
    "## 附录\n",
    "1. **照片与数据**：\n",
    "   - 比赛活动照片、捕获鱼类照片。  \n",
    "   - 参赛者数据（参赛人数、分组、区域分布）。  \n",
    "2. **支持单位与赞助商**：\n",
    "   - 列出活动合作的相关单位及机构。  \n",
    "3. **钓点地图与环境说明**：\n",
    "   - 比赛区域的地图及详细说明。  \n",
    "4. **媒体报道与社会反响**：\n",
    "   - 汇总比赛相关报道及公众评价。  "
   ],
   "metadata": {
    "collapsed": false
   },
   "id": "30926d7995bc7101"
  },
  {
   "cell_type": "code",
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2024\"全能王\"全国钓鱼锦标赛（新疆疏勒站）暨中国龙传统 ...\n",
      "2024年\"全能王\"全国钓鱼锦标赛 (新疆疏勒站)作为经中国钓鱼运动协会批准的国家级一类赛事,也是疏勒印象 垂钓 中心举办的第二届全国性 垂钓 大赛，希望通过本届大赛，向更多朋友更好推介疏勒，进一步打响\"丝路重镇·多彩疏勒\"旅游品牌。 喀什地区行署二级巡视员罗翔在致辞中说，近年来，在自治区党委、自治区人民政府的坚强领导下，喀什地区认真贯彻党的体育方针，坚持正确的体育发展方向，全民健身蓬勃发展，竞技体育屡创佳绩，民族体育快速发展，体育产业不断壮大，体育旅游蒸蒸日上。 今年，疏勒县再次举办\"全能王\"全国钓鱼锦标赛，是充分展示\"大美喀什·游钓疏勒\"的魅力的具体行动，对于打造运动喀什、健康喀什、活力喀什具有十分重要而深远的意义，必将推动喀什地区体育与文化、体育与旅游、体育与乡村振兴高度融合。\n",
      "中国钓鱼运动协会官方网站\n",
      "自然水域. “22℃商洛·中国康养之都”. 中国钓鱼运动协会 关于举办“亚王·红电杯”第十三届中国升钟湖国际钓鱼大赛系列活动三项钓鱼比赛的通知 2024-09-19. 全国自然水域垂钓系列大赛中国冠县钓鱼邀请赛圆满举办 2024-09-04. 300多支队伍、600多运动员挥竿竞技 ...\n",
      "2024年\"全能王\"全国钓鱼锦标赛 - 百度百科\n",
      "2024年\"全能王\"全国钓鱼锦标赛（新疆疏勒站）于7月2日顺利完成各项比赛项目，在疏勒印象垂钓中心圆满收竿。 2024年10月18日，2024年\"全能王\"全国钓鱼锦标赛（上海站）在浦东老港镇开钓。 [2] 中文名. 2024年\"全能王\"全国钓鱼锦标赛. 举办时间. 2024年. 目录. 1 参赛阵容. 2 赛况记录. 3 赛事意义. 参赛阵容. 播报. 编辑. 新疆疏勒站. 比赛共设5个项目，来自全国各地的近500名钓友齐聚比赛现场，同场切磋钓技，在竞技赛场展示竞技水平和风采。 上海站. 吸引了来自全国各地的400名优秀钓鱼选手参赛。 [2] 赛况记录. 播报. 编辑. 新疆疏勒站.\n",
      "2024年\"全能王\"全国钓鱼锦标赛（上海站）在浦东新区老港镇 ...\n",
      "10月18日，2024年\"全能王\"全国 钓鱼 锦标赛（上海站）在浦东新区老港镇开幕，来自全国各地的400余名垂钓选手、爱好者相聚一堂，在两天的比赛中开展激烈角逐。 据悉，本次比赛由中国 钓鱼 运动协会、上海市体育局、上海市体育总会、浦东新区文化体育和旅游局共同主办，是2024年\"全能王\"全国钓鱼锦标赛的收官之战。 老港镇内近千条河流交错纵横，组成了丰富的水生态体系，与老港雪菜、水稻共同成就了江南鱼米之乡、海滨生态小镇，吸引了大批 垂钓 爱好者慕名而来。 此次比赛赛场设置在全新打造的老港欣河 垂钓 中心。 老港欣河垂钓中心在今年完成了鱼塘标准化建设，占地30亩，可容纳500人同时垂钓。 此次比赛也是老港欣河垂钓中心建成后举办的首场大型赛事。\n",
      "2024年\"全能王\"全国钓鱼锦标赛（新疆疏勒站）暨中国龙传统 ...\n",
      "2024年\"全能王\"全国钓鱼锦标赛 (新疆疏勒站)作为经中国钓鱼运动协会批准的国家级一类赛事，也是疏勒印象垂钓中心举办的第二届全国性垂钓大赛，希望通过本届大赛，向更多朋友更好推介疏勒，进一步打响\"丝路重镇·多彩疏勒\"旅游品牌。 2024年\"全能王\"全国钓鱼锦标赛（新疆疏勒站）暨中国龙传统文化交流活动开幕现场。 疏勒县融媒体中心 宋佳飞 摄. 喀什地区行署二级巡视员罗翔在致辞中说，近年来，在自治区党委、自治区人民政府的坚强领导下，喀什地区认真贯彻党的体育方针，坚持正确的体育发展方向，全民健身蓬勃发展，竞技体育屡创佳绩，民族体育快速发展，体育产业不断壮大，体育旅游蒸蒸日上。\n"
     ]
    }
   ],
   "source": [
    "content_str = \"\\n\".join([i[\"title\"] + \"\\n\" + i[\"snippet\"] for i in web_search])\n",
    "print(content_str)"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2024-11-15T05:37:53.788749Z",
     "start_time": "2024-11-15T05:37:53.785515Z"
    }
   },
   "id": "5226ed16fda302f6",
   "execution_count": 9
  },
  {
   "cell_type": "markdown",
   "source": [
    "## 撰写总序"
   ],
   "metadata": {
    "collapsed": false
   },
   "id": "13587d4067b5dfe9"
  },
  {
   "cell_type": "code",
   "outputs": [],
   "source": [
    "from langchain_core.prompts import ChatPromptTemplate\n",
    "system_template = \"\"\"\n",
    "你是一个撰写总序的助手，请结合上下文内容从一下几个方面帮我生成800字左右的总序：\n",
    "## 1. 背景\n",
    "    - 描述此次钓鱼比赛活动的组织背景：\n",
    "    - 举办单位、时间、地点。\n",
    "    - 活动的发起原因，如推广钓鱼文化、促进环保意识、推动户外休闲活动等。\n",
    "    - 指出活动在当时的社会或行业环境下的必要性和重要性。\n",
    "\n",
    "## 2. 意义\n",
    "   - 强调活动的主要意义：\n",
    "     - **文化意义**：如钓鱼作为一种传统活动，如何在现代社会中获得重视。\n",
    "     - **经济意义**：赛事如何带动当地经济（如旅游业、渔具销售等）。\n",
    "     - **环保意义**：活动如何促进环境保护，如钓后放生、净化水源等环保措施。\n",
    "     - **社会价值**：活动如何帮助提升大众休闲意识、推广健康生活方式。\n",
    "\n",
    "## 3. 成果\n",
    "   - 总结活动取得的主要成果：\n",
    "     - **参赛情况**：列出参赛人数、参与队伍、各类获奖情况。\n",
    "     - **活动亮点**：记录比赛中的创新亮点或特别表现的项目。\n",
    "     - **公众反响**：简述活动在公众和媒体中的反响，列举赞扬点。\n",
    "   - 数据支持：简要展示数据或关键指标（如活动的参与人数增长率、捕获鱼类放生率等）。\n",
    "\n",
    "## 4. 改进方向\n",
    "   - 分析本次活动的不足之处或遇到的挑战：\n",
    "     - 参赛组织方面的改进点（如规则细化、场地安排优化）。\n",
    "     - 参赛者服务方面的改进（如后勤保障、设备租赁）。\n",
    "     - 钓鱼过程中的问题（如环保措施加强、鱼类保护优化）。\n",
    "   - 提出针对性建议，如增加资源投入或引入新技术手段。\n",
    "\n",
    "## 5. 未来发展\n",
    "   - 展望钓鱼比赛活动的发展方向：\n",
    "     - **规模扩大**：计划如何增加参赛者和观众规模。\n",
    "     - **品牌化发展**：活动如何打造成地方或国家级赛事品牌。\n",
    "     - **数字化与智能化**：如引入智能设备、线上比赛管理系统等。\n",
    "     - **可持续性**：赛事如何在环保方面采取更积极的措施，确保可持续发展。\n",
    "\n",
    "## 6. 建议\n",
    "   - 为未来活动提出切实可行的建议：\n",
    "     - **活动宣传**：加强活动宣传推广，吸引更多参与者和观众。\n",
    "     - **生态环保措施**：在比赛全流程中增加环保教育，提升活动的环保属性。\n",
    "     - **多元化项目**：增加更多新颖比赛形式或分组，以提高赛事的趣味性和多样性。\n",
    "     - **合作与支持**：寻求更多赞助商、生态保护组织或政府支持，以推动赛事持续健康发展。\n",
    "\"\"\"\n",
    "prompt_zx = ChatPromptTemplate.from_messages(\n",
    "    [(\"system\", system_template), (\"human\", \"{input}\")]\n",
    ")\n",
    "\n",
    "# result = prompt_template.invoke({\"input\": \"你在做什么？\"})\n",
    "# \n",
    "# result.to_messages()\n",
    "\n",
    "chain_zx = prompt_zx | llm"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2024-11-15T06:28:53.154879Z",
     "start_time": "2024-11-15T06:28:53.149975Z"
    }
   },
   "id": "ee7da9a7e85b7af4",
   "execution_count": 15
  },
  {
   "cell_type": "code",
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "### 总序\n",
      "\n",
      "#### 1. 背景\n",
      "2024年“全能王”全国钓鱼锦标赛（新疆疏勒站）暨中国龙传统钓鱼文化交流活动，作为经中国钓鱼运动协会批准的国家级一类赛事，于2024年7月2日在新疆疏勒印象垂钓中心成功举办。此次比赛由疏勒印象垂钓中心主办，得到了中国钓鱼运动协会、喀什地区行署等单位的大力支持。活动旨在通过钓鱼比赛推广钓鱼文化，提升公众的环保意识，同时促进当地旅游业和体育产业的发展。在当前社会背景下，钓鱼作为一种传统活动，其文化价值和休闲意义日益受到重视，而此次比赛正是在这样的背景下应运而生，具有重要的社会意义和文化价值。\n",
      "\n",
      "#### 2. 意义\n",
      "此次比赛不仅是一场竞技盛宴，更是一次文化与环保的融合。从文化意义上讲，钓鱼作为一种传统活动，在现代社会中获得了新的生命力，成为连接过去与未来的桥梁。从经济意义上讲，比赛带动了当地旅游业和渔具销售，促进了地方经济的发展。从环保意义上讲，比赛强调了钓后放生和水源保护，提升了公众的环保意识。从社会价值上讲，比赛推广了健康的生活方式，提升了大众的休闲意识，促进了全民健身的发展。\n",
      "\n",
      "#### 3. 成果\n",
      "此次比赛取得了显著的成果。参赛人数达到近500人，吸引了来自全国各地的钓友齐聚一堂，共同切磋钓技。比赛共设5个项目，涵盖了不同的钓鱼技巧和策略，充分展示了参赛者的竞技水平和风采。比赛期间，参赛者们展现了高度的专业精神和团队合作精神，比赛现场气氛热烈，观众反响热烈。此外，比赛还得到了媒体的广泛关注和报道，进一步提升了活动的知名度和影响力。\n",
      "\n",
      "#### 4. 改进方向\n",
      "尽管此次比赛取得了显著成果，但仍存在一些不足之处。例如，比赛规则需要进一步细化，以确保公平公正；场地安排需要更加合理，以提高参赛者的体验；环保措施需要进一步加强，以确保比赛的可持续性。未来，我们将进一步优化比赛组织，提升参赛者服务，加强环保措施，确保比赛的顺利进行。\n",
      "\n",
      "#### 5. 未来发展\n",
      "展望未来，我们计划将“全能王”全国钓鱼锦标赛打造成国家级乃至国际级的赛事品牌，吸引更多参赛者和观众。我们将引入智能设备和线上管理系统，提升比赛的数字化和智能化水平。同时，我们将进一步加强环保措施，确保比赛的可持续性，为保护环境和促进可持续发展做出贡献。\n",
      "\n",
      "#### 6. 建议\n",
      "为了进一步提升比赛的影响力和吸引力，我们提出以下建议：\n",
      "- **活动宣传**：加强活动宣传推广，吸引更多参赛者和观众。\n",
      "- **生态环保措施**：在比赛全流程中增加环保教育，提升活动的环保属性。\n",
      "- **多元化项目**：增加更多新颖比赛形式或分组，提高赛事的趣味性和多样性。\n",
      "- **合作与支持**：寻求更多赞助商、生态保护组织或政府支持，推动赛事持续健康发展。\n",
      "\n",
      "通过以上措施，我们相信“全能王”全国钓鱼锦标赛将不断发展壮大，成为全国乃至国际上具有影响力的赛事品牌，为推动钓鱼文化的发展和环保事业的进步做出更大的贡献。\n"
     ]
    }
   ],
   "source": [
    "r = chain_zx.invoke({\"input\": content_str})\n",
    "print(r.content)"
   ],
   "metadata": {
    "collapsed": false,
    "ExecuteTime": {
     "end_time": "2024-11-15T06:33:31.344441Z",
     "start_time": "2024-11-15T06:33:31.341123Z"
    }
   },
   "id": "ce40864d0497b498",
   "execution_count": 20
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
